/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.pucp.Util;

import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import pe.edu.pucp.Modelo.Ciudad;
import pe.edu.pucp.Modelo.Envio;
import pe.edu.pucp.sigepa.recocidosimulado.domain.interfaz.Solucion;

/**
 *
 * @author katy
 *///-aca-
public class EmailHelper {
    public static void enviarEmailEnvios (String correo, String nomb,String usr, Envio envio, Ciudad origen, Ciudad destino, Ciudad ciudadActual, Date fecha) {
        try {
            String subject = "SIGEPA - Monitoreo de envíos";
            String message = "Estimado cliente: "+nomb+"\n\n"
                           + "Envío: " + envio.getIdenvio() + " \n\n"                           
                           + "Ciudad destino: "+ destino.getDescripcion()+ "\n\n\n\n\n\n"                                       
                           + "Su envío arribó a la ciudad de:  \n\n"
                           + ciudadActual.getDescripcion() + "\n\n\n"
                           + "Hora arribo:  \n\n"
                           + fecha
                           + "SIGEPA";
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "sigepaseg@gmail.com");
            props.setProperty("mail.smtp.auth", "false");
            
            Session session = Session.getDefaultInstance(props);
            Session conexionCorreo = Session.getInstance(props, null);
            session.setDebug(true);
            Message mensaje = new MimeMessage(conexionCorreo);
            Address desde = new InternetAddress("sigepaseg@gmail.com","SIGEPA");
            Address para = new InternetAddress(correo);
            mensaje.setContent(message,"text/plain");            
            mensaje.setFrom(desde);            
            mensaje.setRecipient(Message.RecipientType.TO, para);            
            mensaje.setSubject(subject);
            Transport t = session.getTransport("smtp");            
            t.connect("sigepaseg@gmail.com", "sigepaseg");
            t.sendMessage(mensaje, mensaje.getAllRecipients());
            t.close();
        } catch (UnsupportedEncodingException | MessagingException ex) {
        }
    }    
      
    public static void enviarCorreo (String correo, String nomb,String usr, String pass) {
        try {
            String subject = "SIGEPA - nueva contraseña";
            String message = "Estimado Usuario: "+nomb+"\n\n"
                           + "Se le envía los datos de su nueva cuenta para ingresar al sistema SIGEPA. \n\n"
                           + "Su usuario es: "+usr+ "\n\n"       
                           + "Su contraseña es: "+pass+ "\n\n"                           
                           + "Atentamente, \n\n"
                           + "Equipo de Seguridad,\n"
                           + "SIGEPA";
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "sigepaseg@gmail.com");
            props.setProperty("mail.smtp.auth", "false");
            
            Session session = Session.getDefaultInstance(props);
            Session conexionCorreo = Session.getInstance(props, null);
            session.setDebug(true);
            Message mensaje = new MimeMessage(conexionCorreo);
            Address desde = new InternetAddress("sigepaseg@gmail.com","SIGEPA");
            Address para = new InternetAddress(correo);
            mensaje.setContent(message,"text/plain");            
            mensaje.setFrom(desde);            
            mensaje.setRecipient(Message.RecipientType.TO, para);            
            mensaje.setSubject(subject);
            Transport t = session.getTransport("smtp");            
            t.connect("sigepaseg@gmail.com", "sigepaseg");
            t.sendMessage(mensaje, mensaje.getAllRecipients());
            t.close();
        } catch (UnsupportedEncodingException | MessagingException ex) {
        }
    }    
    
    public static void enviarEmailEnviosFirst (String correo, String nomb,String usr, Envio envio, Solucion lstVuelos) {
        try {
            String subject = "SIGEPA - Registro de envíos";
            String message = "Estimado cliente: "+nomb+"\n\n"                           
                           + "Envío: " + envio.getIdenvio() + " \n\n"
                           + "Se registro su envio, con el siguiente itinerario\n\n";
            for (pe.edu.pucp.sigepa.recocidosimulado.Modelo.Vuelo v: lstVuelos){
                message += "Vuelo N°:"+String.valueOf(v.getIdvuelo())+"\n";
                message += "De:      "+v.getAeropuertoOrigen().getCiudad().getDescripcion()+"\n";
                message += "Hasta:   "+v.getAeropuertoDestino().getCiudad().getDescripcion()+"\n";
                message += "Salida:  "+v.getSalidaest()+"\n\n";
            }
            
            message +="SIGEPA";
                        
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "sigepaseg@gmail.com");
            props.setProperty("mail.smtp.auth", "false");
            
            Session session = Session.getDefaultInstance(props);
            Session conexionCorreo = Session.getInstance(props, null);
            session.setDebug(true);
            Message mensaje = new MimeMessage(conexionCorreo);
            Address desde = new InternetAddress("sigepaseg@gmail.com","SIGEPA");
            Address para = new InternetAddress(correo);
            mensaje.setContent(message,"text/plain");            
            mensaje.setFrom(desde);            
            mensaje.setRecipient(Message.RecipientType.TO, para);            
            mensaje.setSubject(subject);
            Transport t = session.getTransport("smtp");            
            t.connect("sigepaseg@gmail.com", "sigepaseg");
            t.sendMessage(mensaje, mensaje.getAllRecipients());
            t.close();
        } catch (UnsupportedEncodingException | MessagingException ex) {
        }
    }  
    public static void enviarEmailEnviosSecond (String correo, String nomb,String usr, Envio envio, Solucion lstVuelos) {
        try {
            SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");            
            String subject = "SIGEPA - Informe de Envio";
            String message = "Estimado: "+nomb+"\n\n"                           
                           + "Por medio del presente le informamos que se ha registrado un envío a su nombre por medio de nuestra empresa\n"                           
                           + "Se registro el envio, con el siguiente itinerario\n\n";
            for (pe.edu.pucp.sigepa.recocidosimulado.Modelo.Vuelo v: lstVuelos){
                Date fecha = v.getLlegadaest();
                Calendar cal = new GregorianCalendar();
                cal.setTimeInMillis(fecha.getTime());
                cal.add(Calendar.HOUR, -envio.getUsuario().getAeropuerto().getCiudad().getPais().getGmt());
                cal.add(Calendar.HOUR, envio.getAeropuerto().getCiudad().getPais().getGmt());
                fecha = new Date(cal.getTimeInMillis());
                message += "Vuelo n"+String.valueOf(v.getIdvuelo())+"\n";
                message += "Desde:  "+v.getAeropuertoOrigen().getCiudad().getDescripcion()+"\n";
                message += "Hasta:  "+v.getAeropuertoDestino().getCiudad().getDescripcion()+"\n";
                message += "Llegada: "+formato.format(fecha)+"\n\n";
            }
            message +="Favor de tomar en cuenta la hora de arribo para poder recoge su envío\n";
            message +="Saludos\n";
            message +="SIGEPA";
                        
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "sigepaseg@gmail.com");
            props.setProperty("mail.smtp.auth", "false");
            
            Session session = Session.getDefaultInstance(props);
            Session conexionCorreo = Session.getInstance(props, null);
            session.setDebug(true);
            Message mensaje = new MimeMessage(conexionCorreo);
            Address desde = new InternetAddress("sigepaseg@gmail.com","SIGEPA");
            Address para = new InternetAddress(correo);
            mensaje.setContent(message,"text/plain");            
            mensaje.setFrom(desde);            
            mensaje.setRecipient(Message.RecipientType.TO, para);            
            mensaje.setSubject(subject);
            Transport t = session.getTransport("smtp");            
            t.connect("sigepaseg@gmail.com", "sigepaseg");
            t.sendMessage(mensaje, mensaje.getAllRecipients());
            t.close();
        } catch (UnsupportedEncodingException | MessagingException ex) {
        }
    }  
}
